import {add, get,update,getById, viewsInc,likesInc, count,likesSub,del} from "../../utils/db"
const app=getApp()
Page({
  data: {
      images:[],//轮播图图片
      detail:null,//菜谱信息
      flag:false,//是否关注，true 是
      tag:true,//按钮状态
      openid:"",//用户id
      userInfo:{},
      isLogin:false,
  },
  async onLoad(e){
    wx.getSetting({
      success:res=>{
        if(res.authSetting['scope.userInfo']){
          this.setData({
            isLogin:true
          })
        }
      }
    })
    // this.data.isLogin=e.isLogin;
    this.updateViews(e.id);
    let userInfo = app.globalData.userInfo
    this.setData({
      userInfo
    })
    if(userInfo!=null){
      // 判断是否已关注 
      let openid=wx.getStorageSync('openid');
      this.setData({
        openid
      })
      let res=await count("likes",{
        _openid:openid,
        menuid:e.id
      }).catch(err=>console.error(err));
      if(res.total==0){
        this.setData({
          flag:false
        })
      }else{
        this.setData({
          flag:true
        })
      }
    }
  },
  // 更新浏览量
  async updateViews(id){
    wx.showLoading({
      title: '加载中',
    })
    let res=await viewsInc("menu",id).catch(err=>{
      console.log(err);
      return;
    })
    // 查询菜谱详情
    this.getDetail(id);
  },

  async getDetail(id){
     // 查询菜谱详情
     let res=await getById("menu",id).catch(err=>{
      console.log(err);
      return;
    })
    // 设置当前页面的标题
    wx.setNavigationBarTitle({
      title: res.data.name
    })
    
    let images=res.data.images
    this.setData({
      images,
      detail:res.data
    })
    wx.hideLoading()
  },
  // 关注
  async follow(){
    if( this.data.isLogin){
      wx.showLoading({
        title: '关注中',
        mask:true
      })
      let id=this.data.detail._id
      // 添加到关注表
      let res1=await add("likes",{menuid:id}).catch(err=>console.error(err));
      // 更新菜谱表里的关注数
      let res=await likesInc("menu",id).catch(err=>{
        console.log(err);
        return;
      })
      wx.hideLoading()
      wx.showToast({
        title: '关注成功',
        icon:'success',
        duration:2000
      })
      this.getDetail(id);
      this.setData({
        flag:true
      })
    }else{
      wx.showToast({
        title: '请先登录哦',
        duration:1000
      })
    }
  },
  // 取关
  async unFollow(){
    if(this.data.isLogin){
      wx.showLoading({
        title: '取关中',
        mask:true
      })
      let id=this.data.detail._id
      // 取消关注
      let res1=await del("likes",{
        _openid:this.data.openid,
        menuid:id
      }).catch(err=>console.error(err));
      // 更新菜谱表里的关注数
      let res=await likesSub("menu",id).catch(err=>{
        console.log(err);
        return;
      })
      
      wx.hideLoading()
      wx.showToast({
        title: '取关成功',
        duration:2000
      })
      this.getDetail(id);
      this.setData({
        flag:false
      })
    }else{
      wx.showToast({
        title: '请先登录哦',
        duration:1000
      })
    }
  } 
})